
package modelo.dto.entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity 
@Table(name="GRUPO")
@NamedQueries({
	@NamedQuery(name="Grupo.findAllOrderByNomeGrupo", query="SELECT g FROM Grupo g ORDER BY g.nomeGrupo ASC")
})
public class Grupo implements Serializable{
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="id_grupo", length= 50, nullable=false, unique=true) 
    private int codigo;
	
	@Column(name="nome_grupo", length=40, nullable=false, unique=true )
    private String nomeGrupo;
	
	@OneToMany(mappedBy="grupo", orphanRemoval=true)
    private List<Contato> contatos;        
    
    public Grupo() {
    	this.contatos = new ArrayList<Contato>();
    }

    public Grupo(int codigo) {
        this.codigo = codigo;
    }

    public Grupo(int codigo, String nomeGrupo) {
        this.codigo = codigo;
        this.nomeGrupo = nomeGrupo;
    }   
    
    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }        

    public String getNomeGrupo() {
        return nomeGrupo;
    }

    public void setNomeGrupo(String nomeGrupo) {
        this.nomeGrupo = nomeGrupo;
    }       

    public List<Contato> getContatos() {
		return contatos;
	}

	public void setContatos(List<Contato> contatos) {
		this.contatos = contatos;
	}

	@Override
    public String toString() { 
        return String.format("Codigo: %d \nDescricao: %s \n", this.getCodigo(), this.getNomeGrupo());
    }
        
        
}
